import { getToken, setToken, removeToken } from '@/utils/auth'
import { login } from '@/api/user'
// 状态
const state = {
  token: getToken()//设置token为共享状态，初始化vuex的时候，优先从缓存中读取
}
// 修改状态
const mutations = {
  setToken(state, token) {
    state.token = token  //设置token 只是修改state的数据
    //vuex变化=>缓存数据
    setToken(token)  //vuex和缓存数据的同步
  },
  // 删除缓存
  removeToken(state) {
    state.token = null  //删除vuex的token
    removeToken() //先清除 vuex 再清除缓存  vuex和缓存数据的同步
  }
}
// 执行异步
const actions = {
  async login(context, data) {
    //调用api接口
    const result = await login(data)
    context.commit('setToken', result)
    // if (result.data.success) {
    //   context.commit('setToken', result)
    // }
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

